/**
 * 推荐的方式是，
 * interface 用来描述对象、类的结构，
 * type（类型别名）用来将一个函数签名、一组联合类型、一个工具类型等等抽离成一个完整独立的类型
*/

//对象类型
interface IDescription {
    readonly name: string;
    age: number;
    male?: boolean;
    func?: Function;
}

const obj2: IDescription = {
    name: 'hanxuming',
    age: 599,
    male: true,
    // 无需实现 func 也是合法的
};

//export {}：解决“无法重新声明块范围变量”错误提示问题
export {}